package run.jingjing.websocket.endpoint;

import javax.websocket.*;

/**
 * @author: jingjing
 * @date: 2021/6/24
 * @description:
 */
public interface WebSocketEndpoint {

    Integer getUserId();

    Session getSession();

    void beforeInitializationHook();

    void afterInitializationHook();

    /**
     * 连接打开事件
     *
     * @param token
     * @param sign
     * @param session
     */
    void onOpen(String token, String sign, Session session);

    /**
     * 收到消息的事件
     *
     * @param message
     * @param session
     */
    void onMessage(String message, Session session);

    /**
     * 出现异常的事件
     *
     * @param error
     */
    void onError(Throwable error);

    /**
     * 连接关闭的事件
     */
    void onClose();

    void initEndpoint(Class<? extends LittlebustersEndpointDemo> clazz, String token, String topicName, Session session);
}
